###############################################################################
@auto[]
# секундомер
$MAIN:fStartTime($status:rusage.tv_sec+$status:rusage.tv_usec/1000000)

$CLASS_PATH[^table::create{path
/classes
/classes/sql
/admin/templates
/admin/modules}]

# *** Раскомментируйте и укажите параметры соединения с бд ***
#	$SQL[
#		$.drivers[^table::create[nameless]{mysql	/путь/libparser3mysql.so	libmysqlclient.so}]
#		$.connect-string[mysql://логин:пароль@localhost/odminko?charset=UTF8]
#	]

# везде используется UTF8
$request:charset[utf-8]
$response:charset[utf-8]
$response:content-type[
	$.value[text/html]
	$.charset[$response:charset]
]

^use[mysql.p]
^use[lib.p]
# создаётся объект pSQL, работающий с разными БД
$MAIN:pSQL[^mysql::init[$SQL.connect-string][$.is_debug(1)]]

#^use[sd_lib.p]
^use[core.p]
^use[factory.p]
###############################################################################



###############################################################################
@main[]
^MAIN:pSQL.server{
  ^rem{ создаётся объект класса core }
  $MAIN:core[^core::init[
    $.pSQL[$MAIN:pSQL]
  ]]
	^if($mainSQL is junction){^mainSQL[]}
}
###############################################################################



###############################################################################
@postprocess[body][dNow;fTime;sTime]
#	в XML добавлять посторонние элементы не нужно
^if($body is string && ^file:justext[^request:uri.match[\?.*][]{}] ne xml){

	$dNow[^date::now[]]
	$fTime($status:rusage.tv_sec + $status:rusage.tv_usec/1000000 - $MAIN:fStartTime)
	$sTime[^fTime.format[%.3f] sec, ^dNow.sql-string[], SQL: $MAIN:pSQL.hStatistics.total.count]
  $result[^body.match[timetime][]{^taint[xml][$sTime]}]

	^getSQLStat[]
}{
	$result[$body]
}
###############################################################################



###############################################################################
# этот метод выведет статистику, собранную объектом $MAIN:pSQL
@getSQLStat[]

^if(def $MAIN:pSQL){
	^if(def $form:mode && ^form:tables.mode.locate[field;debug]){
		^rem{ *** если пусканули с ?mode=debug то получаем и сохраняем информацию обо всех запросах на странице *** }
		^MAIN:pSQL.print_statistic[
			$.file[/sql.txt]
		]
	}{
		^rem{ *** а по умолчанию в лог пишем только информацию о проблемных страницах *** }
		^MAIN:pSQL.print_statistic[
			$.file[/sql.log]
			$.debug_time_limit(500)
			$.debug_queries_limit(25)
			$.debug_result_limit(3000)
		]
	}
}
###############################################################################